package com.lottery.material.dao.promotion;

import com.lottery.material.pojo.page.Page;
import com.lottery.material.pojo.promotion.PromotionRuleConfig;
import com.lottery.material.pojocustom.promotion.PromotionRuleConfigCustom;
import com.lottery.material.vo.portal.article.ArticlePromotionRuleVo;

import java.util.List;

/**
 * @description 推广规则配置Mapper
 * @author rambo
 * @date 2019年4月11日 下午9:29:15
 */
@SuppressWarnings("JavaDoc")
public interface PromotionRuleConfigMapper {
	
    Integer deleteByPrimaryKey(Integer id);

    Integer insert(PromotionRuleConfig record);

    Integer insertSelective(PromotionRuleConfig record);

    PromotionRuleConfig selectByPrimaryKey(Integer id);

    Integer updateByPrimaryKeySelective(PromotionRuleConfig record);

    Integer updateByPrimaryKeyWithBLOBs(PromotionRuleConfig record);

    Integer updateByPrimaryKey(PromotionRuleConfig record);

    /**
     * description：根据推广类型查询唯一数据（一个推广类型只对应一条数据）
     * user 朱正磊
     * time 2019-04-30 14:47
     * @param type 推广类型
     * @return 返回唯一数据
     */
    PromotionRuleConfig findByType(Integer type);

    /**
     * description：查询扩展类分页列表
     * user 朱正磊
     * time 2019-04-17 17:01
     * @param page 分页对象
     * @return 返回扩展类分页列表数据
     */
    List<PromotionRuleConfigCustom> findCustomListPage(Page page);

    /**
     * description：根据主键查询唯一扩展类数据
     * user 朱正磊
     * time 2019-04-17 17:03
     * @param id 主键
     * @return 返回唯一扩展类数据
     */
    PromotionRuleConfigCustom findCustomById(Integer id);

    /**
     * description：查询所有的数据（当然不包括已经逻辑删除的数据，其实该业务没有删除操作）
     * user 朱正磊
     * time 2019-05-15 15:13
     * @return 返回所有的集合列表数据
     */
    List<PromotionRuleConfigCustom> findAll();

    /**
     * description: 根据推广类型查询
     * author sunny
     * createDate 2019-04-26 下午 3:10
     * @param promotionType
     * @return
     */
    PromotionRuleConfig findByPromotionType(Integer promotionType);

    /**
     * description: 根据推广类型查询Vo
     * author sunny
     * createDate 2019-04-29 上午 11:15
     * @param promotionType
     * @return
     */
    ArticlePromotionRuleVo findVoByPromotionType(Integer promotionType);
}
